/*
 * @Author: Warren
 * @Date: 2025-02-27 08:56:20
 * @LastEditors: Warren
 * @LastEditTime: 2025-07-23 22:09:58
 * @FilePath: /nest-web/src/entities/user.entity.ts
 * @Description: 请填写文件说明
 */
import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';

@Entity()
export class User {
    /* 自動創建主鍵装饰器 */
    @PrimaryGeneratedColumn()
        id: number;

    /* 普通注解 */
    /* TODO 什么是数据库索引 */
    @Column({
        /* 数据库操作检测，不唯一 报错 */
        unique: true,
    })
        username: string;

    @Column()
        password: string;

    @Column({
        default: true,
    })
        enabled: boolean;  // 数据库会定义为  TINYINT TRUE/1 表示真 FALSE/0 表示假
        
    @Column({
        nullable: true,
    })
        phone: string;
        
    @Column({
        nullable: true,
    })
        email: string;

    @Column({
        nullable: true,
    })
        remark: string;

    @CreateDateColumn({
        name: 'created_time',
    })
        createdTime: Date

    @UpdateDateColumn({
        name: 'updatetime',
    })
        updateTime: Date


    /* 便于单一职责与管理 */
    /* 比较密码 */
    async comparePassword(attemp: string): Promise<boolean> {
        return attemp === this.password
    }
}